code: def apply_transaction(
              self,
              transaction: BaseOrSpoofTransaction) -> 'BaseComputation':
          
          if self.state_root != BLANK_ROOT_HASH and not self._account_db.has_root(self.state_root):
              raise StateRootNotFound(self.state_root)
          else:
              return self.execute_transaction(transaction)
docs: Apply transaction to the vm state
  
          :param transaction: the transaction to apply
          :return: the computation