You can implement a normal ABL transaction in any PAS for OpenEdge procedure that the client runs either directly or indirectly. The ABL for starting a normal ABL transaction in a server session is identical to ABL required to start transactions in an ABL client session.
In any case, a normal ABL transaction starts and ends entirely within the context of the server procedure that implements it. Because this type of transaction completes within the scope of a single procedure call, you can implement a normal ABL transaction for a client connected in any application model (session-managed or session-free).