def METHOD_NAME(context: Context, data_path: Path, name: str, handler: Callable) -> None:
    context.log.info(f"Parsing `{name}` ...")
    with tarfile.open(data_path, "r:*") as tf:
        member = tf.extractfile(f"corpwatch_api_tables_csv/{name}")
        if member is None:
            raise RuntimeError("Missing file in archive: %s" % name)
        wrapper = TextIOWrapper(member, encoding="utf-8-sig")
        reader = csv.DictReader(wrapper, delimiter="\t")
        idx = 0
        for idx, row in enumerate(reader):
            handler(context, row)
            if idx and idx % 100_000 == 0:
                context.log.info(f"Parse record {idx}...", name=name)
        context.log.info(f"Parsed {idx} rows", name=name)
        member.close()