docs: public boolean setCache(Object objTargetRow, Object data)
      {
          if (objTargetRow != NONE)
          {
              if (m_mapCache != null)
              {
                  int iTargetRow = ((Integer)objTargetRow).intValue();
                  int iCurrentPhysicalRecord = ((Integer)m_objCurrentPhysicalRecord).intValue();
                  if (iTargetRow == iCurrentPhysicalRecord)
                  {   // Reset the current record
                      m_objCurrentPhysicalRecord = NONE;
                      m_objCurrentCacheRecord = NONE;
                      m_objCurrentLockedRecord = NONE;
                  }
                  if (m_iPhysicalLastRecordPlusOne == iTargetRow)
                      m_iPhysicalLastRecordPlusOne++;
                  m_mapCache.set(iTargetRow, data); // Make sure the cache matches the actual
                  return true;
              }
              if (m_htCache != null)
              {
                  if (objTargetRow.equals(m_objCurrentPhysicalRecord))
                  {   // Reset the current record.
                      m_objCurrentPhysicalRecord = NONE;
                      m_objCurrentCacheRecord = NONE;
                      m_objCurrentLockedRecord = NONE;
                  }
                  if (data != null)
                      m_htCache.put(objTargetRow, data);  // Make sure the cache matches the actual
                  else
                      m_htCache.remove(objTargetRow);
                  return true;
              }
          }
          return false; // nothing updated
      }