Postgres kör PL/pgSQL inuti transaktionen. Du kan alltså inte kontrollera transaktionen inifrån PL/pgSQL . Koden kommer att se ut så här:
begin;
select plpgsql_fn();
do '/*same any plpgsql*/';
end;
Så svarar på din fråga:
Om du har PL/pgSQL kör ATM, har du din transaktion aktiv ATM...
Naturligtvis kan du göra några knep, som att starta/sluta arbete över dblink eller så. men då kan du kontrollera select txid_current(); över dblink framgångsrikt...