just remove transaction management (look up of UT and the begin and commit) from your code and it should work just fine. All operations done by the engine (executing work item handler) are done within transaction so there is no need to start another one. Creation of entity manager within active transaction makes it auto join that transaction - but you can always call entityManager.joinTransaction to ensure that.
Thank you Maciej. It helps.
We also had to move all updates of our entity to jbpm engine because there was a problem when we tried update entity from jbpm and from main thread which start jbpm process.