def METHOD_NAME(self, node, context):
    # Allow a single ROP node or a full ROP network of USD ROP nodes
    # to be processed as a single entry that should "live together" on
    # a publish.
    if node.type().name() == "ropnet":
        # All rop nodes inside ROP Network
        ropnodes = node.recursiveGlob("*", filter=hou.nodeTypeFilter.Rop)
    else:
        # A single node
        ropnodes = [node]
    data = lib.read(node)
    # Don't use the explicit "colorbleed.usd.layered" family for publishing
    # instead use the "colorbleed.usd" family to integrate.
    data["publishFamilies"] = ["colorbleed.usd"]
    # For now group ALL of them into USD Layer subset group
    # Allow this subset to be grouped into a USD Layer on creation
    data["subsetGroup"] = "USD Layer"
    instances = list()
    dependencies = []
    for ropnode in ropnodes:
        # Create a dependency instance per ROP Node.
        lopoutput = ropnode.evalParm("lopoutput")
        dependency_save_data = self.get_save_data(lopoutput)
        dependency = context.create_instance(dependency_save_data["name"])
        dependency.append(ropnode)
        dependency.data.update(data)
        dependency.data.update(dependency_save_data)
        dependency.data["family"] = "colorbleed.usd.dependency"
        dependency.data["optional"] = False
        dependencies.append(dependency)
        # Hide the dependency instance from the context
        context.pop()
        # Get all configured layers for this USD ROP node
        # and create a Pyblish instance for each one
        layers = hou_usdlib.get_configured_save_layers(ropnode)
        for layer in layers:
            save_path = hou_usdlib.get_layer_save_path(layer)
            save_data = self.get_save_data(save_path)
            if not save_data:
                continue
            self.log.info(save_path)
            instance = context.create_instance(save_data["name"])
            instance[:] = [node]
            # Set the instance data
            instance.data.update(data)
            instance.data.update(save_data)
            instance.data["usdLayer"] = layer
            # Don't allow the Pyblish `instanceToggled` we have installed
            # to set this node to bypass.
            instance.data["_allowToggleBypass"] = False
            instances.append(instance)
    # Store the collected ROP node dependencies
    self.log.debug("Collected dependencies: %s" % (dependencies,))
    for instance in instances:
        instance.data["publishDependencies"] = dependencies