code: def _testAttachParametersInSingleThread(self, suffix: str):
      with parameter_utils.ParameterContext() as pc:
          parameter_utils.attach_parameter(
              data_types.RuntimeParameter(
                  name="param1_in_{}".format(suffix), ptype=int
              )
          )
          parameter_utils.attach_parameter(
              data_types.RuntimeParameter(
                  name="param2_in_{}".format(suffix), ptype=int
              )
          )
      self.assertLen(pc.parameters, 2)
      self.assertEqual(
          pc.parameters[0].name, "param1_in_{}".format(suffix)
      )
      self.assertEqual(
          pc.parameters[1].name, "param2_in_{}".format(suffix)
      )
  
file_path: tfx/tfx/orchestration/kubeflow/v2/parameter_utils_test.py
imports: from concurrent import futures
  import tensorflow
  from tfx.orchestration import data_types
  from tfx.orchestration.kubeflow.v2 import parameter_utils
label_desc: Use image node_id 1 for calling the ParameterUtilsTest obj's underlying member method code with example usage: obj._testAttachParametersInSingleThread(suffix) without return types