I think you are getting confused between a
thread context and a transaction context.
A thread context may not be the same as transaction context. There could be multiple transactions within a single thread context. For instance, a single path of execution may update three different tables, all happening as a part of a single transaction.
You also have to remember the JTA transaction is propagated to all parties involved ie., more than often multiple databases. That is why you need to demarcate every client transaction with a unique context.
Hope that helps,