public function insertEntityRevision($revision, FormData $requestData, $subResource = NULL) {
    $entity = $this->createEmptyEntity($revision);
    
    if ($subResource !== NULL && array_key_exists($subResource, $this->customActions)) {
      return $this->callCustomAction($this->customActions[$subResource], array($entity, $requestData, $revision));
    }
    
    $this->updateEntityRevision($entity, $revision, $requestData);
    $this->setOpenTabMetadata($entity);
    
    return $entity;
  }