code: def _pyro_post_param(self, msg):
      event_dim = msg["kwargs"].get("event_dim")
      new_value = self._subsample_site_value(msg["value"], event_dim)
      if new_value is not msg["value"]:
          if hasattr(msg["value"], "_pyro_unconstrained_param"):
              param = msg["value"]._pyro_unconstrained_param
          else:
              param = msg["value"].unconstrained()
  
          if not hasattr(param, "_pyro_subsample"):
              param._pyro_subsample = (
                  {}
              )  # TODO is this going to persist correctly?
  
          param._pyro_subsample[self.dim - event_dim] = self.indices
          new_value._pyro_unconstrained_param = param
          msg["value"] = new_value
  
imports: from collections import OrderedDict
  from numbers import Number
  import funsor
  from pyro.contrib.funsor.handlers.named_messenger import DimRequest, DimType, GlobalNamedMessenger, NamedMessenger
  from pyro.contrib.funsor.handlers.primitives import to_data, to_funsor
  from pyro.distributions.util import copy_docs_from
  from pyro.poutine.broadcast_messenger import BroadcastMessenger
  from pyro.poutine.indep_messenger import CondIndepStackFrame
  from pyro.poutine.messenger import Messenger
  from pyro.poutine.runtime import effectful
  from pyro.poutine.subsample_messenger import SubsampleMessenger
  from pyro.util import ignore_jit_warnings
label_desc: Use image node_id 5 for calling the SubsampleMessenger obj's underlying member method code with example usage: obj._pyro_post_param(msg) without return types