Эта информация описана в документации для SET
Если SET (или, что то же самое, SET SESSION) выдается в транзакции, которая позднее прерывается, эффекты команды SET исчезают при откате транзакции. Как только окружающая транзакция будет зафиксирована, эффекты будут сохраняться до конца сеанса, если они не будут переопределены другим SET.
В частности, вы можете использовать SET LOCAL
Эффекты SET LOCAL действуют только до конца текущей транзакции, независимо от того, зафиксированы они или нет.