def METHOD_NAME(node_file: str,
                                     current_labels: Set,
                                     driver: Neo4jDriver,
                                     db_name: str) -> Set:
    """
    Go over the node file and try creating unique indices.
    For any label seen first time for this publisher it will try to create unique index.
    Neo4j ignores a second creation in 3.x, but raises an error in 4.x.
    """
    LOGGER.info('Creating indices using Node file: %s. (Existing indices will be ignored)', node_file)
    labels = set(current_labels)
    with open(node_file, 'r', encoding='utf8') as node_csv:
        for node_record in pandas.read_csv(node_csv,
                                           na_filter=False).to_dict(orient='records'):
            label = node_record[NODE_LABEL]
            if label not in labels:
                with driver.session(database=db_name) as session:
                    try:
                        create_stmt = Template("""
                            CREATE CONSTRAINT ON (node:{{ LABEL }}) ASSERT node.key IS UNIQUE
                        """).render(LABEL=label)
                        LOGGER.info(f'Trying to create index for label {label} if not exist: {create_stmt}')
                        session.write_transaction(execute_neo4j_statement, create_stmt)
                    except Neo4jError as e:
                        if e.code != NEO4J_EQUIVALENT_SCHEMA_RULE_ALREADY_EXISTS_ERROR_CODE\
                                and e.code != NEO4J_INDEX_ALREADY_EXISTS_ERROR_CODE:
                            raise
                        # Else, swallow the exception, to make this function idempotent.
                labels.add(label)
    LOGGER.info('Indices have been created.')
    return labels