It turns out that there is very little information about how to sending JMS messages as part of a JTA transaction using JMS API. Most examples on the web use false for parameter transacted in QueueConnection.createQueueSession(boolean transacted, int acknowledgeMode); in which case the message is sent directly and not at the commit of the JTA transaction.
So I was happy when I found Odi's article: JMS transactions with JTA in JBoss 4.
And from a quick look, there seems to be a lot of interesting developer content on Odi's site. Definitely worth a look.
At first sight, you might think that I'm just sharing this with the world to make it a better place. But actually I'm just adding this 1 link to google's pagerank so that I'll find it quicker next time I need it ;-)