docs: public TaxonomyTerm resolveTaxonomyTerm(final long id) throws SQLException {
  
        metrics.taxonomyTermCacheTries.mark();
        TaxonomyTerm term = taxonomyTermCache.getIfPresent(id);
        if(term != null) {
           metrics.taxonomyTermCacheHits.mark();
           return term;
        }
  
        Connection conn = null;
        PreparedStatement stmt = null;
        ResultSet rs = null;
        long termId = 0;
        String taxonomy = "";
        String description = "";
        Timer.Context ctx = metrics.taxonomyTermResolveTimer.time();
        try {
           conn = connectionSupplier.getConnection();
           stmt = conn.prepareStatement(selectTaxonomyTermIdSQL);
           stmt.setLong(1, id);
           rs = stmt.executeQuery();
           if(rs.next()) {
              taxonomy = rs.getString(1);
              termId = rs.getLong(2);
              description = rs.getString(3);
           }
        } finally {
           ctx.stop();
           SQLUtil.closeQuietly(conn, stmt, rs);
        }
  
        if(termId > 0) {
           term = new TaxonomyTerm(id, taxonomy, selectTerm(termId), description);
           taxonomyTermCache.put(id, term);
           return term;
        } else {
           return null;
        }
     }