"How can a client go with a transaction context?"
The container will create a transaction context for the client. Developers don't need to worry about how the container creates a transaction context.
For example, a Foo bean has a foo() method. This foo() method calls Bar bean's bar() method. The client invokes foo() method. If the transaction attribute is REQUIRE, the container creates a transaction context , txn A for foo()'s execution. If bar's transaction attribute is NOT_SUPPORT, the container will suspend txn A transaction context, creates an unspecific transaction context txn B for bar()'s execution.
You may want to read Head First
EJB chapter 9 about transaction for reference.