code: def update(
      self, credentials: SyftVerifyKey, data_subject: DataSubject
  ) -> Result[DataSubject, str]:
      res = self.check_type(data_subject, DataSubject)
      # 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())
  
imports: from typing import List
  from typing import Optional
  from typing import Union
  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 PartitionSettings
  from ...store.document_store import QueryKeys
  from ...util.telemetry import instrument
  from ..context import AuthedServiceContext
  from ..response import SyftError
  from ..response import SyftSuccess
  from ..service import AbstractService
  from ..service import SERVICE_TO_TYPES
  from ..service import TYPE_TO_SERVICE
  from ..service import service_method
  from .data_subject import DataSubject
  from .data_subject import DataSubjectCreate
  from .data_subject import NamePartitionKey
  from .data_subject_member_service import DataSubjectMemberService
label_desc: Use image node_id 3 for calling the DataSubjectStash obj's underlying member method code with example usage: obj.update(credentials, data_subject) and returns: super, res