В случае, когда мы обновляем продукт и все идет хорошо, мы начинаем транзакцию, обновляем модель, фиксируем. Он даже хорошо работает, когда возникает исключение, и мы делаем откат.
Однако когда условия не выполняются, и мы продолжаем, на следующей итерации создается новая транзакция. Счетчик транзакций будет увеличен до 2. Следующая фиксация не будет выполнять фактическую фиксацию в базе данных, а просто уменьшит счетчик.
На следующей итерации начнется новая транзакция, увеличится счетчик до 2 и т. д. Как только число методов beginTransaction() и commit()/rollback() get “выйдет из синхронизации”, следующие итерации не будут обновлять записи.