Transaction
Does JMS API Specifications support Transaction?
Yes. When creating session from JMS Connection, you can mention it make is session transacted or not:
connection.createSession(booleanTransacted, intAcknowledgementMode)
Acknowledgement mode is ignored when the session is transacted.
JMS transaction is at session level. That mean ALL the messages that are send/consumed using one session will be ATOMIC.