Atomic transaction DB create & update

So the behavior I am getting is somewhat weird, I have a view-set and a model serializer that creates an object in the DB.

The create method in the serializer is wrapped with an atomic decorator, after creating the object in the method and then creating the many to one objects, i then call another helper class and pass the main object to it, it does some calculations and then update the many objects related to it.

The issue is, before the last line of the create method i am checking the object and the related objects and they seem to be updated correctly, but after the create method returns the created object the update seems to be reverted, I don’t understand why, when I remove the atomic decorator the creation and update is done successfully.

@atomic
def create(self, validated_data):
    model_object: ModelKlass = ModelKlass.objects.create(**validated_data)
    
    ...
    model_object.save()
    
    another_model_serializer = AnotherModelKlassCreateSerializer(data=some_data, many=True)
    ...
    another_model_serializer.save(model_object=model_object)

    HelperKlass(objekt=model_object).calcualte_free_objects() --> will update another_model_serializer objects created

    return model_object --> when checking the related objects here they are updated, but once this whole block is finished the update seems to be rolled back