class EpssParser {

    private static final Logger LOGGER = Logger.getLogger(EpssParser.class);

    public void parse(final File file) {<FILL_FUNCTION_BODY>}
}

        if (!file.getName().endsWith(".csv")) {
            return;
        }
        LOGGER.info("Parsing " + file.getName());
        try (final Scanner scanner = new Scanner(file)) {
            while (scanner.hasNextLine()) {
                final List<String> values = new ArrayList<>();
                try (final Scanner rowScanner = new Scanner(scanner.nextLine())) {
                    rowScanner.useDelimiter(",");
                    while (rowScanner.hasNext()) {
                        values.add(rowScanner.next());
                    }
                }
                if (values.get(0).startsWith("CVE-")) {
                    final String cveId = values.get(0);
                    final BigDecimal epssScore = new BigDecimal(values.get(1));
                    final BigDecimal percentile = new BigDecimal(values.get(2));
                    try (final QueryManager qm = new QueryManager().withL2CacheDisabled()) {
                        final Vulnerability vuln = qm.getVulnerabilityByVulnId(Vulnerability.Source.NVD, cveId);
                        if (vuln != null) {
                            vuln.setEpssScore(epssScore);
                            vuln.setEpssPercentile(percentile);
                            qm.persist(vuln);
                        }
                    }
                }
            }
        } catch (FileNotFoundException e) {
            LOGGER.error("An error occurred while parsing EPSS data", e);
        }
    
<no_super_class>