Good. So we seem to agree that GUCS are transactional?
I'm surprised, I never knew this.
I must admit that it was also a (good) surprise for me.
The documentation says it:
""" If SET (or equivalently SET SESSION) is issued within a transaction that is later aborted, the effects of the SET command disappear when the transaction is rolled back. Once the surrounding transaction is committed, the effects will persist until the end of the session, unless overridden by another SET. """
But I have not found anything clear about user-defined parameters.