code: @Override
    public <T> long persistObject(T obj) throws CpoException {
      return processUpdateGroup(obj, CpoAdapter.PERSIST_GROUP, null, null, null, null);
    }
docs: Persists the Object into the datasource. The CpoAdapter will check to see if this object exists in the datasource.
  If it exists, the object is updated in the datasource If the object does not exist, then it is created in the
  datasource. This method stores the object in the datasource. This method uses the default EXISTS, CREATE, and
  UPDATE Function Groups specified for this object.
  <p/>
  <pre>Example:
  <code>
  <p/>
  class SomeObject so = new SomeObject();
  class CpoAdapter cpo = null;
  <p/>
  try {
  cpo = new CpoAdapter(new JdbcDataSourceInfo(driver, url, user, password,1,1,false));
  } catch (CpoException ce) {
  // Handle the error
  cpo = null;
  }
  <p/>
  if (cpo!=null) {
  so.setId(1);
  so.setName("SomeName");
  try{
  cpo.persistObject(so);
  } catch (CpoException ce) {
  // Handle the error
  }
  }
  </code>
  </pre>
  
  @param obj This is an object that has been defined within the metadata of the datasource. If the class is not
  defined an exception will be thrown.
  @return A count of the number of objects persisted
  @throws CpoException Thrown if there are errors accessing the datasource
  @see #existsObject
  @see #insertObject
  @see #updateObject