So I'm (was) puzzled here when a big warehouse system just upgraded to 9.6 which I knew does only a few 100k *real* transactions/day was wrapping txid_current() so fast, in turn causing some big, nasty tablesl to age and then require painful long-running vacuums...
Got the brilliant idea to full statement log for just 20 minutes or so and then do some digging.
OMG my DW team's Pentaho/Kettle driver gizmo emulates single-line autocommit inserts using savepoints.
It racked up ~1.8M txids meanwhile actually doing only ~900 transactions.
Symptomatic of this also is that your pg_stat_database.(xact_commit + xact_rollback) counter over time will be wildly smaller then the advancement of txid_current() perhaps helping in the confusion.
This was csvlogged and field #8 is command-tag which we're pulling out