Это недостаток Python DB-API: он запускает транзакцию для вас.Это не должно делать это;должно ли и когда начинать транзакцию решать программист.Низкоуровневые основные API-интерфейсы, подобные этому, не должны присматривать за разработчиком и делать такие вещи, как запуск транзакций за нашими спинами.Мы большие мальчики - мы можем сами начинать транзакции, спасибо.
С psycopg2 вы можете отключить это неудачное поведение с помощью расширения API: call connection.autocommit()
.К сожалению, для этого не существует стандартного API, поэтому вы должны зависеть от нестандартных расширений для выдачи команд, которые должны выполняться вне транзакции.Я тоже был укушен этим раньше.