docs: public void set(Object data, int iOpenMode) throws DBException, RemoteException
      {
          int iErrorCode = this.checkCurrentCacheIsPhysical(data);
          if (iErrorCode != Constants.NORMAL_RETURN)
              throw new DBException(iErrorCode);  // Data probably changed from last time I read it.
          m_tableRemote.set(data, iOpenMode);
          if (m_objCurrentCacheRecord != null)
          {
              if (m_mapCache != null)
              {
                  if ((cacheMode == CacheMode.CACHE_ON_WRITE) || (cacheMode == CacheMode.PASSIVE_CACHE))
                      m_mapCache.set(((Integer)m_objCurrentCacheRecord).intValue(), data);
                  else
                      m_mapCache.set(((Integer)m_objCurrentCacheRecord).intValue(), null);
              }
              else if (m_htCache != null)
              {
                  m_htCache.remove(m_objCurrentCacheRecord);  // Do not put the new record back, as you don't know the new key.
              }
          }
          m_objCurrentPhysicalRecord = NONE;
          m_objCurrentLockedRecord = NONE;
          m_objCurrentCacheRecord = NONE;
      }