docs: private NodeAVL findNode(Session session, PersistentStore store,
                               Object[] rowdata, int[] rowColMap,
                               int fieldCount) {
  
          readLock.lock();
  
          try {
              NodeAVL x = getAccessor(store);
              NodeAVL n;
              NodeAVL result = null;
  
              while (x != null) {
                  int i = this.compareRowNonUnique(rowdata, rowColMap,
                                                   x.getRow(store).getData(),
                                                   fieldCount);
  
                  if (i == 0) {
                      result = x;
                      n      = x.getLeft(store);
                  } else if (i > 0) {
                      n = x.getRight(store);
                  } else {
                      n = x.getLeft(store);
                  }
  
                  if (n == null) {
                      break;
                  }
  
                  x = n;
              }
  
              // MVCC 190
              if (session == null) {
                  return result;
              }
  
              while (result != null) {
                  Row row = result.getRow(store);
  
                  if (compareRowNonUnique(
                          rowdata, rowColMap, row.getData(), fieldCount) != 0) {
                      result = null;
  
                      break;
                  }
  
                  if (session.database.txManager.canRead(session, row)) {
                      break;
                  }
  
                  result = next(store, result);
              }
  
              return result;
          } finally {
              readLock.unlock();
          }
      }