def add_exception_classes(self) -> None:
        """
        Adds exception classes 'DoesNotExist' and 'MultipleObjectsReturned' to a model
        type, aligned with how the model metaclass does it runtime.

        If the model is abstract, exceptions will be added as abstract attributes.
        """
        if "DoesNotExist" not in self.model_classdef.info.names:
            object_does_not_exist = self.lookup_typeinfo_or_incomplete_defn_error(fullnames.OBJECT_DOES_NOT_EXIST)
            does_not_exist: Var | TypeInfo
            if self.is_model_abstract:
                does_not_exist = self.create_new_var("DoesNotExist", TypeType(Instance(object_does_not_exist, [])))
                does_not_exist.is_abstract_var = True
            else:
                does_not_exist = helpers.create_type_info(
                    "DoesNotExist",
                    self.model_classdef.info.fullname,
                    self.get_exception_bases("DoesNotExist") or [Instance(object_does_not_exist, [])],
                )
            self.model_classdef.info.names[does_not_exist.name] = SymbolTableNode(
                MDEF, does_not_exist, plugin_generated=True
            )

        if "MultipleObjectsReturned" not in self.model_classdef.info.names:
            django_multiple_objects_returned = self.lookup_typeinfo_or_incomplete_defn_error(
                fullnames.MULTIPLE_OBJECTS_RETURNED
            )
            multiple_objects_returned: Var | TypeInfo
            if self.is_model_abstract:
                multiple_objects_returned = self.create_new_var(
                    "MultipleObjectsReturned", TypeType(Instance(django_multiple_objects_returned, []))
                )
                multiple_objects_returned.is_abstract_var = True
            else:
                multiple_objects_returned = helpers.create_type_info(
                    "MultipleObjectsReturned",
                    self.model_classdef.info.fullname,
                    (
                        self.get_exception_bases("MultipleObjectsReturned")
                        or [Instance(django_multiple_objects_returned, [])]
                    ),
                )
            self.model_classdef.info.names[multiple_objects_returned.name] = SymbolTableNode(
                MDEF, multiple_objects_returned, plugin_generated=True
            )

        Adds exception classes 'DoesNotExist' and 'MultipleObjectsReturned' to a model
        type, aligned with how the model metaclass does it runtime.

        If the model is abstract, exceptions will be added as abstract attributes.
        
mypy_django_plugin/transformers/models.py