When using JPAKnowledgeService, everytime you interact with the returned StatefulKnowledgeSession a new TX is created and commited.
So, for example:
ksession.startProcess() <- creates a TX, starts the process, the process runs until it reaches a wait-state or an End Event Node, the TX is commited
ksession.getWorkItemManager().completeWorkItem() <- a TX is created, the work item is completed, the process runs until it reaches a wait-state or an End Event Node, the TX is commited .
Best Regards,