We set writing transaction flag if it's a write query while processing
an execute message. However, the flag is set even it's a commit or
rollback. This is an oversight. The flag is reset while starting next
transaction anyway, so it's actually harmless but a bug is a bug.
                /*
                 * Take care of "writing transaction" flag.
                 */
-               if (!is_select_query(node, query) && !is_start_transaction_query(node))
+               if (!is_select_query(node, query) && !is_start_transaction_query(node) &&
+                       !is_commit_or_rollback_query(node))
                {
                        ereport(DEBUG1,
                                        (errmsg("Execute: TSTATE:%c",