code: def run(self) -> Model:
      self.validate()
      try:
          # Creates SqlaTable (Dataset)
          dataset = DatasetDAO.create(
              attributes=self._properties, commit=False
          )
  
          # Updates columns and metrics from the dataset
          dataset.fetch_metadata(commit=False)
          db.session.commit()
      except (SQLAlchemyError, DAOCreateFailedError) as ex:
          logger.warning(ex, exc_info=True)
          db.session.rollback()
          raise DatasetCreateFailedError() from ex
      return dataset
  
file_path: superset/superset/commands/dataset/create.py
imports: import logging
  from typing import Any, Optional
  from flask_appbuilder.models.sqla import Model
  from marshmallow import ValidationError
  from sqlalchemy.exc import SQLAlchemyError
  from superset.commands.base import BaseCommand, CreateMixin
  from superset.commands.dataset.exceptions import DatabaseNotFoundValidationError, DatasetCreateFailedError, DatasetDataAccessIsNotAllowed, DatasetExistsValidationError, DatasetInvalidError, TableNotFoundValidationError
  from superset.daos.dataset import DatasetDAO
  from superset.daos.exceptions import DAOCreateFailedError
  from superset.exceptions import SupersetSecurityException
  from superset.extensions import db, security_manager
label_desc: Use image node_id 2 for calling the CreateDatasetCommand obj's underlying member method code with example usage: obj.run() and returns: dataset