Отмена действий в базе данных при дисконнекте вебсокет соеднинения со стороны клиента
Есть приложение, написанное на django rest framework, для установки вебсокет соединения используется библиотека django-channels. В одном из методов моего консьюмера у меня есть действия с базой данных. Я хочу сделать так, чтобы при разрыве вебсокет соединения со стороны клиента, все взаимодействия с базой данных откатывались назад. Вот мой код consumers.py:
class SomeName(WebsocketConsumer):
def connect(self):
"""
some logic here
"""
def disconnect(self, code):
self.close(code=code)
raise StopConsumer()
@transaction.atomic
def somemethod(self):
"""
some logic including database objects creating
"""
self.disconnect(code=1000)
Сейчас если я прерываю соединение, то все взаимодействия с базой данных отменяются. Правда если я не прерываю соединение и позволяю методу завершить работу, то в базу данных не вносятся изменений. Подскажите пожалуйста, что я делаю не так.