def insert_usid_policy(database, lr_dst, rl_dst, lr_nodes, rl_nodes,
                       table=None, metric=None, l_grpc_ip=None,
                       l_grpc_port=None, l_fwd_engine=None,
                       r_grpc_ip=None, r_grpc_port=None,
                       r_fwd_engine=None, decap_sid=None, locator=None):
    """
    Insert a uSID policy into the 'usid_policies' collection of a Arango
    database.

    :param database: Database where the uSID policy must be saved.
    :type database: arango.database.StandardDatabase
    :param lr_dst: Destination (IP address or network prefix) for the
                   left-to-right path.
    :type lr_dst: str
    :param rl_dst: Destination (IP address or network prefix) for the
                   right-to-left path.
    :type rl_dst: str
    :param lr_nodes: List of nodes (names or uN sids) making the left-to-right
                     path.
    :type lr_nodes: list
    :param rl_nodes: List of nodes (names or uN sids) making the right-to-left
                     path.
    :type rl_nodes: list
    :param table: FIB table where the policy must be saved.
    :type table: int, optional
    :param metric: Metric (weight) to be used for the policy.
    :type metric: int, optional
    :param l_grpc_ip: gRPC IP address of the left node, required if the left
                      node is expressed numerically in the nodes list.
    :type l_grpc_ip: str, optional
    :param l_grpc_port: gRPC port of the left node, required if the left
                        node is expressed numerically in the nodes list.
    :type l_grpc_port: str, optional
    :param l_fwd_engine: forwarding engine of the left node, required if the
                         left node is expressed numerically in the nodes list.
    :type l_fwd_engine: str, optional
    :param r_grpc_ip: gRPC IP address of the right node, required if the right
                      node is expressed numerically in the nodes list.
    :type r_grpc_ip: str, optional
    :param r_grpc_port: gRPC port of the right node, required if the right
                        node is expressed numerically in the nodes list.
    :type r_grpc_port: str, optional
    :param r_fwd_engine: Forwarding engine of the right node, required if the
                         right node is expressed numerically in the nodes
                         list.
    :type r_fwd_engine: str, optional
    :param decap_sid: uSID used for the decap behavior (End.DT6).
    :type decap_sid: str, optional
    :param locator: Locator prefix (e.g. 'fcbb:bbbb::').
    :type locator: str, optional
    :return: True.
    :rtype: bool
    :raises arango.exceptions.arango.exceptions.DocumentInsertError: If insert
                                                                     fails.
    """
    # Build a dict-representation of the uSID policy
    policy = {
        'lr_dst': lr_dst,
        'rl_dst': rl_dst,
        'lr_nodes': lr_nodes,
        'rl_nodes': rl_nodes,
        'table': table,
        'metric': metric,
        'l_grpc_ip': l_grpc_ip,
        'l_grpc_port': l_grpc_port,
        'l_fwd_engine': l_fwd_engine,
        'r_grpc_ip': r_grpc_ip,
        'r_grpc_port': r_grpc_port,
        'r_fwd_engine': r_fwd_engine,
        'decap_sid': decap_sid,
        'locator': locator
    }
    # Get the uSID policy collection
    # This returns an API wrapper for "usid_policies" collection
    usid_policies = database.collection(name='usid_policies')
    # Insert the policy
    # The parameter silent is set to True to avoid to return document metadata
    # This allows us to sav resources
    return usid_policies.insert(document=policy, silent=True)