В замечательной ORM peewee (python), есть менеджер контекста db.atomic() и рядом с ним db.transaction(). Я понимаю, что атомарность - это всего лишь одно из свойств транзакции, гарантирующее, что данные будут записаны целиком и никогда не частично.
Суть моей задачи - записать определенные данные в две таблицы Postgresql (либо BULK_INSERT + BULK_INSERT, либо BULK_UPDATE + BULK_INSERT) так, чтобы изменения произошли либо в двух таблицах, либо ни в одной. Я бы не задумываясь использовал транзакции, если бы не знал, что есть отдельно менеджер для атомарных операций. Может быть он -- именно то, что мне нужно?