code: public int update(Object entity, Condition whereClause) {
          if (!N.isEntity(entity.getClass())) {
              throw new IllegalArgumentException("The specified parameter must be an entity with getter/setter methods");
          }
  
          return update(getTableNameByEntity(entity), entity, whereClause);
      }
docs: Update the records in data store with the properties which have been updated/set in the specified <code>entity</code> by the specified condition.
  if the entity implements <code>DirtyMarker</code> interface, just update the dirty properties.
  To exclude the some properties or default value, invoke {@code com.landawn.abacus.util.N#entity2Map(Object, boolean, Collection, NamingPolicy)}
  
  <p>The target table is identified by the simple class name of the specified entity.</p>
  
  @param entity with getter/setter methods
  @param whereClause Only binary(=, <>, like, IS NULL ...)/between/junction(or, and...) are supported.
  @return
  
  @see com.landawn.abacus.util.Maps#entity2Map(Object, boolean, Collection, NamingPolicy)