docs: private void instanceAlreadyLoaded(
  		final Tuple resultset,
  		final int i,
  			//TODO create an interface for this usage
  		final OgmEntityPersister persister,
  		final org.hibernate.engine.spi.EntityKey key,
  		final Object object,
  		final LockMode lockMode,
  		final SharedSessionContractImplementor session)
  	throws HibernateException {
  		if ( !persister.isInstance( object ) ) {
  			throw new WrongClassException(
  					"loaded object was of wrong class " + object.getClass(),
  					key.getIdentifier(),
  					persister.getEntityName()
  				);
  		}
  
  		if ( LockMode.NONE != lockMode && upgradeLocks() ) { // no point doing this if NONE was requested
  
  			final boolean isVersionCheckNeeded = persister.isVersioned() &&
  					session.getPersistenceContext().getEntry( object )
  							.getLockMode().lessThan( lockMode );
  			// we don't need to worry about existing version being uninitialized
  			// because this block isn't called by a re-entrant load (re-entrant
  			// loads _always_ have lock mode NONE)
  			if ( isVersionCheckNeeded ) {
  				//we only check the version when _upgrading_ lock modes
  				Object oldVersion = session.getPersistenceContext().getEntry( object ).getVersion();
  				persister.checkVersionAndRaiseSOSE( key.getIdentifier(), oldVersion, session, resultset );
  				//we need to upgrade the lock mode to the mode requested
  				session.getPersistenceContext().getEntry( object )
  						.setLockMode( lockMode );
  			}
  		}
  	}