Как тут уже правильно заметили, не надо ловить все Exception без разбору и даже не выводить никакой ошибки. Ничего хорошего от этого антипаттерна не получится.
Как минимум следует начать хотя бы с такого:
try:
...
except Exception as e:
print (e)
Сейчас же, возможно, случается Exception, но мы этого даже не знаем.
Далее, не стоит использовать ORM вперемешку с обычными запросами. Это тоже источник потенциальных проблем, ведь ORM может кэшировать данные, в том числе ещё не сохранённые. Возможно, до вызова save случился Exception, данные в кэше отличаются от данных в базе, но при прямом запросе в базу мы получим не то же самое, что получили бы из кэша.
Вот такие мелочи могут создавать проблемы, которые при этом вообще нигде даже не отражается. И это ещё повезло, что эффект такой заметный. А если бы эффект проявлялся в одном случае из тысячи? Как бы его потом ловить и что отвечать пользователям, с которых списали лишних денег?