Postgres spouští PL/pgSQL uvnitř transakce. Nemůžete tedy ovládat transakce z PL/pgSQL . Kód bude vypadat takto:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Takže odpověď na vaši otázku:
Pokud máte PL/pgSQL běžící ATM, máte svou transakci aktivní ATM...
Samozřejmě můžete udělat nějaký trik, například začít/ukončit práci přes dblink nebo tak. ale pak můžete zaškrtnout select txid_current(); přes dblink úspěšně...