It's not really bound to the thread usage....
It's more thinking like a session...
If you always access a session within a thread at any point.. then you're fine.
Like: having multiple consumers from a same session. when you call commit, you will commit for both consumers.
If you use the session, place it on a pool and reuse it later from a different thread.. it's fine.
Those are JMS concepts.. not anything specific to HornetQ.