code: protected void doUpdate()
      {
          getDetailForm().commit();
          Object savedObject = null;
          try
          {
              savedObject = saveEntity(getDetailForm().getFormObject());
              setDetailFormObject(savedObject, tableSelectionObserver, false);
          }
          catch (RuntimeException e)
          {
              Object changedObject = getDetailForm().getFormObject();
              // the following actually requests the object from the back-end
              boolean success = setDetailFormObject(changedObject, tableSelectionObserver, true);
              // set the changes back on the model if the object could be set on the form model
              if (success)
                  ObjectUtils.mapObjectOnFormModel(getDetailForm().getFormModel(), changedObject);
              throw e;
          }
      }
docs: Save the changes made in the detailForm according to following steps:
  <p/>
  <ol>
  <li>commit form</li>
  <li>formObject sent to back-end</li>
  <li>changes are handled in back-end</li>
  <li>changed object is returned to client</li>
  <li>old object is replaced by changed object</li>
  </ol>