I tried with -E and it does echo the BEGIN/END used to implement
-1/--single-transaction, but not the SAVEPOINT queries for
ON_ERROR_ROLLBACK. It looks like SendQuery is calling PQexec directly
instead of calling the PSQLexec wrapper function that does the
logging. I happened to notice that the queries emitted by \watch, nor
the BEGIN for autocommit, aren't logged by either option as well.
I think this may be a documentation bug as well? I would expect -e to
be a superset of -E:
-E
--echo-hidden
Echo the actual queries generated by \d and other backslash commands.
-e
--echo-queries
Copy *ALL* [emphasis mine] SQL commands sent to the server to
standard output as well