Postgres esegue PL/pgSQL all'interno della transazione. Quindi non puoi controllare la transazione dall'interno di PL/pgSQL . Il codice sarà simile a:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Quindi rispondendo alla tua domanda:
Se hai PL/pgSQL con ATM, hai la transazione ATM attiva...
Ovviamente puoi fare qualche trucco, come iniziare/terminare il lavoro su dblink o simili. ma poi puoi controllare select txid_current(); sopra il dblink con successo...