docs: protected void doCommit(DefaultTransactionStatus status) {
  
          ContextSourceAndDataSourceTransactionObject actualTransactionObject = (ContextSourceAndDataSourceTransactionObject) status
                  .getTransaction();
  
          try {
              super.doCommit(new DefaultTransactionStatus(actualTransactionObject
                      .getDataSourceTransactionObject(), status
                      .isNewTransaction(), status.isNewSynchronization(), status
                      .isReadOnly(), status.isDebug(), status
                      .getSuspendedResources()));
          } catch (TransactionException ex) {
              if (isRollbackOnCommitFailure()) {
                  logger.debug("Failed to commit db resource, rethrowing", ex);
                  // If we are to rollback on commit failure, just rethrow the
                  // exception - this will cause a rollback to be performed on
                  // both resources.
                  throw ex;
              } else {
                  logger
                          .warn("Failed to commit and resource is rollbackOnCommit not set -"
                                  + " proceeding to commit ldap resource.");
              }
          }
          ldapManagerDelegate.doCommit(new DefaultTransactionStatus(
                  actualTransactionObject.getLdapTransactionObject(), status
                          .isNewTransaction(), status.isNewSynchronization(),
                  status.isReadOnly(), status.isDebug(), status
                          .getSuspendedResources()));
      }