code: def run(self) -> Model:
      try:
          # Start nested transaction since we are always creating the tunnel
          # through a DB command (Create or Update). Without this, we cannot
          # safely rollback changes to databases if any, i.e, things like
          # test_do_not_create_database_if_ssh_tunnel_creation_fails test will fail
          db.session.begin_nested()
          self.validate()
          return SSHTunnelDAO.create(
              attributes=self._properties, commit=False
          )
      except DAOCreateFailedError as ex:
          # Rollback nested transaction
          db.session.rollback()
          raise SSHTunnelCreateFailedError() from ex
      except SSHTunnelInvalidError as ex:
          # Rollback nested transaction
          db.session.rollback()
          raise ex
  
file_path: superset/superset/commands/database/ssh_tunnel/create.py
imports: import logging
  from typing import Any, Optional
  from flask_appbuilder.models.sqla import Model
  from marshmallow import ValidationError
  from superset.commands.base import BaseCommand
  from superset.commands.database.ssh_tunnel.exceptions import SSHTunnelCreateFailedError, SSHTunnelInvalidError, SSHTunnelRequiredFieldValidationError
  from superset.daos.database import SSHTunnelDAO
  from superset.daos.exceptions import DAOCreateFailedError
  from superset.extensions import db, event_logger
label_desc: Use image node_id 2 for calling the CreateSSHTunnelCommand obj's underlying member method code with example usage: obj.run() and returns: SSHTunnelDAO