conn.commit() # <== БЕЗ ЭТОГО МОЖЕТ НЕ РАБОТАТЬ
в данном случае не знаю, как это работает, есть ли начало транзакции, и есть ли у вас транзакции длиной больше одного оператора и есть ли незавершенные
например, в pl/pgsql коммит/роллбэк предыдущей транзакции означает начало следующей
к чему это я? postgres использует MVCC, то есть каждая транзакция работает со своим снимком данных. А у вас есть транзакция из питона и есть из пгадмин.
Рекомендую проверить, нет ли "висящих транзакций" в БД, нет ли явного начала транзакции, где-то до начала этого кода и как работает либа через которую работаете с БД