code: public ObjectResult updateObject(SpiderTransaction   parentTran,
                                       DBObject            dbObj,
                                       Map<String, String> currScalarMap) {
          ObjectResult result = new ObjectResult();
          try {
              result.setObjectID(dbObj.getObjectID());
              boolean bUpdated = updateExistingObject(dbObj, currScalarMap);
              result.setUpdated(bUpdated);
              if (bUpdated) {
                  m_logger.trace("updateObject(): object updated for ID={}", dbObj.getObjectID());
                  parentTran.mergeSubTransaction(m_dbTran);
              } else {
                  result.setComment("No updates made");
                  m_logger.trace("updateObject(): no updates made for ID={}", dbObj.getObjectID());
              }
          } catch (Throwable ex) {
              buildErrorStatus(result, dbObj.getObjectID(), ex);
          }
          return result;
      }
docs: Update the given object, whose current values have been pre-fetched. The object
  must exist, and the values in the given DBObject are compared to the given current
  values to determine which ones are being added or updated. If an update is actually
  made, updates are merged to the given parent SpiderTransaction.
  
  @param parentTran    Parent {@link SpiderTransaction} to which updates are applied
  if the delete is successful.
  @param dbObj         DBObject to be updated.
  @param currScalarMap Map of the existing objects current scalar values for fields
  being updated.
  @return              {@link ObjectResult} representing the results of the update.
  Includes a comment if no updates were made.