docs: def perform_create(self, serializer):
          """Create a resource."""
          process = serializer.validated_data.get('process')
          if not process.is_active:
              raise exceptions.ParseError(
                  'Process retired (id: {}, slug: {}/{}).'.format(process.id, process.slug, process.version)
              )
  
          with transaction.atomic():
              instance = serializer.save()
  
              assign_contributor_permissions(instance)
  
              # Entity is added to the collection only when it is
              # created - when it only contains 1 Data object.
              entities = Entity.objects.annotate(num_data=Count('data')).filter(data=instance, num_data=1)
  
              # Assign data object to all specified collections.
              collection_pks = self.request.data.get('collections', [])
              for collection in Collection.objects.filter(pk__in=collection_pks):
                  collection.data.add(instance)
                  copy_permissions(collection, instance)
  
                  # Add entities to which data belongs to the collection.
                  for entity in entities:
                      entity.collections.add(collection)
                      copy_permissions(collection, entity)