def update_or_create(cls, with_status=False, **kwargs):
        """
        Update or create static netlink. DNS entry differences are not
        resolved, instead any entries provided will be the final state
        for this netlink. If the intent is to add/remove DNS entries
        you can use the :meth:`~domain_server_address` method to add
        or remove.
        
        :raises CreateElementFailed: failed creating element
        :return: element instance by type or 3-tuple if with_status set
        """
        dns_address = kwargs.pop('domain_server_address', [])
        element, updated, created = super(StaticNetlink, cls).update_or_create(
            with_status=True, defer_update=True, **kwargs)
        if not created:
            if dns_address:
                new_entries = RankedDNSAddress([])
                new_entries.add(dns_address)
                element.data.update(domain_server_address=new_entries.entries)
                updated = True
        if updated:
            element.update()
        if with_status:
            return element, updated, created
        return element