code: protected function deleteInternal()
      {
          if (!$this->beforeDelete()) {
              return false;
          }
  
          // we do not check the return value of deleteAll() because it's possible
          // the record is already deleted in the database and thus the method will return 0
          $condition = $this->getOldPrimaryKey(true);
          $lock = $this->optimisticLock();
          if ($lock !== null) {
              $condition[$lock] = $this->$lock;
          }
          $result = static::deleteAll($condition);
          if ($lock !== null && !$result) {
              throw new StaleObjectException('The object being deleted is outdated.');
          }
          $this->setOldAttributes(null);
          $this->afterDelete();
  
          return $result;
      }
docs: Deletes an ActiveRecord without considering transaction.
  @return int|false the number of rows deleted, or `false` if the deletion is unsuccessful for some reason.
  Note that it is possible the number of rows deleted is 0, even though the deletion execution is successful.
  @throws StaleObjectException