docstr: To be implemented by subclasses of MetadataProvider.
  
  See mutate_user_tags_for_run() for expectations.
code: def _mutate_user_tags_for_run(
      cls, flow_id, run_id, tags_to_add=None, tags_to_remove=None
  ):
      """
      To be implemented by subclasses of MetadataProvider.
  
      See mutate_user_tags_for_run() for expectations.
      """
      raise NotImplementedError()
  
imports: import json
  import os
  import re
  import time
  from collections import namedtuple
  from itertools import chain
  from metaflow.exception import MetaflowInternalError, MetaflowTaggingError
  from metaflow.tagging_util import validate_tag
  from metaflow.util import get_username, resolve_identity_as_tuple, is_stringish
label_desc: Use image node_id 18 for calling the MetadataProvider obj's underlying member method code with example usage: obj._mutate_user_tags_for_run(cls, flow_id, run_id, tags_to_add, tags_to_remove) without return types