/**
  * An explicit update. The reason for this is that for an update the number
  * of required properties is different that of an insert.
  *
  * Required properties: EmailAddress, SubscriberKey, or ID.
  *
  * @return boolean
  * @throws Exception
  */
 public function update()
 {
     $this->checkRequiredProperties($this->requiredUpdateProperties);
     $this->checkRequiredAttributes();
     $objects = array($this->makeSoapVar());
     $result = ETCore::update($objects);
     ETCore::evaluateSoapResult($result);
     $this->clearModified();
     return true;
 }