code: def validate(self) -> None:
      # Validate/populate model exists
      self._models = DatasetDAO.find_by_ids(self._model_ids)
      if not self._models or len(self._models) != len(self._model_ids):
          raise DatasetNotFoundError()
      # Check ownership
      for model in self._models:
          try:
              security_manager.raise_for_ownership(model)
          except SupersetSecurityException as ex:
              raise DatasetForbiddenError() from ex
  
file_path: superset/superset/commands/dataset/delete.py
imports: import logging
  from typing import Optional
  from superset import security_manager
  from superset.commands.base import BaseCommand
  from superset.commands.dataset.exceptions import DatasetDeleteFailedError, DatasetForbiddenError, DatasetNotFoundError
  from superset.connectors.sqla.models import SqlaTable
  from superset.daos.dataset import DatasetDAO
  from superset.daos.exceptions import DAODeleteFailedError
  from superset.exceptions import SupersetSecurityException
label_desc: Use image node_id 3 for calling the DeleteDatasetCommand obj's underlying member method code with example usage: obj.validate() without return types