Puedes probarlo tú mismo:
ADVERTENCIA: ya hay una transacción en progreso
No inicia ninguna (sub) transacción nueva ya que las transacciones anidadas no se implementan en PostgreSQL. (Sin pl/pgsqlembargo, puede hacer algo de magia en una función, por ejemplo, que imita ese comportamiento).
Con PostgreSQL 11, uno podría pensar que los nuevos procedimientos reales almacenados y su capacidad para manejar transacciones harían posibles las transacciones anidadas. Sin embargo, según la documentación , este no es el caso:
En los procedimientos invocados por el CALLcomando, así como en bloques de código anónimos ( DOcomando), es posible finalizar las transacciones usando los comandos COMMITy ROLLBACK. Una nueva transacción se inicia automáticamente después de finalizar una transacción utilizando estos comandos, por lo que no existe un comando START TRANSACTION separado.