def update_on_device(self):
        params = self.want.api_params()
        tx = self.client.api.tm.transactions.transaction
        with BigIpTxContext(tx) as api:
            cache = api.tm.sys.dbs.db.load(name='dns.cache')
            dns = api.tm.sys.dns.load()

            # Empty values can be supplied, but you cannot supply the
            # None value, so we check for that specifically
            if self.want.cache is not None:
                cache.update(value=self.want.cache)
            if params:
                dns.update(**params)