def METHOD_NAME(self, assets, parent=None):
    """Add the assets that are related to the parent as children items.
    This method does *not* query the database. These instead are queried
    in a single batch upfront as an optimization to reduce database
    queries. Resulting in up to 10x speed increase.
    Args:
        assets (dict): All assets from current project.
    """
    parent_id = parent["_id"] if parent else None
    current_assets = assets.get(parent_id, list())
    for asset in current_assets:
        # get label from data, otherwise use name
        data = asset.get("data", {})
        label = data.get("label") or asset["name"]
        tags = data.get("tags", [])
        # store for the asset for optimization
        deprecated = "deprecated" in tags
        node = Node({
            "_id": asset["_id"],
            "name": asset["name"],
            "label": label,
            "type": asset["type"],
            "tags": ", ".join(tags),
            "deprecated": deprecated,
            "_document": asset
        })
        self.add_child(node, parent=parent)
        # Add asset's children recursively if it has children
        if asset["_id"] in assets:
            self.METHOD_NAME(assets, parent=node)