На заметку А вы знали, что не каждая транзакция откатывается при ошибке ? Если pl/pgsql функция абортнулась из-за нехватки места schema's disk space quota exceeded with name : public то таблицы, которые были ей созданы не откатываются, а остаются как будто транзакция корректно завершилась.