def METHOD_NAME(self, request, context):
    olds = rpc.deserialize_properties(request.olds)
    news = rpc.deserialize_properties(request.news)
    provider = get_provider(news)
    result = provider.update(request.id, olds, news)  # pylint: disable=no-member
    outs = {}
    if result.outs is not None:
        outs = result.outs
    outs[PROVIDER_KEY] = news[PROVIDER_KEY]
    loop = asyncio.new_event_loop()
    outs_proto = loop.run_until_complete(rpc.serialize_properties(outs, {}))
    loop.close()
    fields = {"properties": outs_proto}
    return proto.UpdateResponse(**fields)