Forum OpenACS Development: Re: Problem with db_transaction?
From reading the docs here
http://www.postgresql.org/docs/7.4/interactive/protocol-flow.html#AEN52769 about cancellation and termination , it seems the problem is that postgres only checks for termination (normal or abnormal) BETWEEN queries.
Since this should normally not be happening, I do not think the behaviour is unreasonable. A cancellation interface could come in handy in other cases though (such as the ability to kill long running queries).