code: def _persist_tags_for_run(flow_id, run_id, tags, system_tags):
      subpath = LocalMetadataProvider._create_and_get_metadir(
          flow_name=flow_id, run_id=run_id
      )
      selfname = os.path.join(subpath, "_self.json")
      if not os.path.isfile(selfname):
          raise MetaflowInternalError(
              msg="Could not verify Run existence on disk - missing %s"
              % selfname
          )
      LocalMetadataProvider._save_meta(
          subpath,
          {
              "_self": MetadataProvider._run_to_json_static(
                  flow_id,
                  run_id=run_id,
                  tags=tags,
                  sys_tags=system_tags,
              )
          },
          allow_overwrite=True,
      )
  
imports: import collections
  import glob
  import json
  import os
  import random
  import tempfile
  import time
  from collections import namedtuple
  from metaflow.exception import MetaflowInternalError, MetaflowTaggingError
  from metaflow.metadata.metadata import ObjectOrder
  from metaflow.metaflow_config import DATASTORE_LOCAL_DIR
  from metaflow.metadata import MetadataProvider
  from metaflow.tagging_util import MAX_USER_TAG_SET_SIZE, validate_tags
label_desc: Use image node_id 15 for calling the LocalMetadataProvider obj's underlying member method code with example usage: obj._persist_tags_for_run(flow_id, run_id, tags, system_tags) without return types