code: @Override
      protected void doCommit() throws HeuristicMixedException, HeuristicRollbackException, IllegalStateException, RollbackException,
              SecurityException, SystemException {
          if (canTerminateTransactionReally()) {
              if (logger.isDebugEnabled()) {
                  logger.debug("#lazyTx ...Committing the transaction: {}", buildLazyTxExp());
              }
              superDoCommit();
          } else {
              if (logger.isDebugEnabled()) {
                  logger.debug("#lazyTx *No commit because of non-begun transaction: {}", buildLazyTxExp());
              }
          }
          if (canLazyTransaction()) {
              decrementHierarchyLevel();
              resumeForcedlyBegunLazyTransactionIfNeeds(); // when nested transaction
          }
          if (isLazyTransactionReadyLazy() && isHerarchyLevelZero()) { // lazy transaction is supported only for root
              returnToReadyLazy();
          }
      }
docs: ======