code: def update(
      self, credentials: SyftVerifyKey, dataset_update: DatasetUpdate
  ) -> Result[Dataset, str]:
      res = self.check_type(dataset_update, DatasetUpdate)
      # we dont use and_then logic here as it is hard because of the order of the arguments
      if res.is_err():
          return res
      return super().update(credentials=credentials, obj=res.ok())
  
file_path: PySyft/packages/syft/src/syft/service/dataset/dataset_stash.py
imports: from typing import List
  from typing import Optional
  from result import Result
  from ...node.credentials import SyftVerifyKey
  from ...serde.serializable import serializable
  from ...store.document_store import BaseUIDStoreStash
  from ...store.document_store import DocumentStore
  from ...store.document_store import PartitionKey
  from ...store.document_store import PartitionSettings
  from ...store.document_store import QueryKeys
  from ...types.uid import UID
  from ...util.telemetry import instrument
  from .dataset import Dataset
  from .dataset import DatasetUpdate
label_desc: Use image node_id 3 for calling the DatasetStash obj's underlying member method code with example usage: obj.update(credentials, dataset_update) and returns: super, res