code: protected <T> T processCheckRowCountError(Transaction t, Exception root, Throwable e, TxCallable<T> process) throws Exception {
          if (e == null) {
              throw root;
          }
          if (e instanceof OptimisticLockException) {
              if ("checkRowCount".equals(e.getStackTrace()[0].getMethodName())) {
                  if (process != null)
                      return process.call(t);
              }
          }
          return processCheckRowCountError(t, root, e.getCause(), process);
      }
docs: <p>processCheckRowCountError.</p>
  
  @param t       Transaction
  @param root    root exception
  @param e       exception
  @param process process method
  @param <T>     model
  @return model
  @throws java.lang.Exception if any.