docs: @Override
      public void insertPointsOfInterest(Collection<PointOfInterest> pois) {
          try {
              if (this.insertPoiLocStatement == null) {
                  this.insertPoiLocStatement = this.conn.prepareStatement(DbConstants.INSERT_INDEX_STATEMENT);
              }
              if (this.insertPoiDataStatement == null) {
                  this.insertPoiDataStatement = this.conn.prepareStatement(DbConstants.INSERT_DATA_STATEMENT);
              }
              if (this.insertPoiCatStatement == null) {
                  this.insertPoiCatStatement = this.conn.prepareStatement(DbConstants.INSERT_CATEGORY_MAP_STATEMENT);
              }
  
              this.insertPoiLocStatement.clearParameters();
              this.insertPoiDataStatement.clearParameters();
              this.insertPoiCatStatement.clearParameters();
  
              Statement stmt = this.conn.createStatement();
              stmt.execute("BEGIN;");
  
              for (PointOfInterest poi : pois) {
                  // POI location
                  this.insertPoiLocStatement.setLong(1, poi.getId());
                  this.insertPoiLocStatement.setDouble(2, poi.getLatitude());
                  this.insertPoiLocStatement.setDouble(3, poi.getLatitude());
                  this.insertPoiLocStatement.setDouble(4, poi.getLongitude());
                  this.insertPoiLocStatement.setDouble(5, poi.getLongitude());
                  this.insertPoiLocStatement.executeUpdate();
  
                  // POI data
                  this.insertPoiDataStatement.setLong(1, poi.getId());
                  this.insertPoiDataStatement.setString(2, tagsToString(poi.getTags()));
                  this.insertPoiDataStatement.executeUpdate();
  
                  // POI categories
                  for (PoiCategory cat : poi.getCategories()) {
                      this.insertPoiCatStatement.setLong(1, poi.getId());
                      this.insertPoiCatStatement.setLong(2, cat.getID());
                      this.insertPoiCatStatement.executeUpdate();
                  }
              }
  
              stmt.execute("COMMIT;");
              stmt.close();
          } catch (SQLException e) {
              LOGGER.log(Level.SEVERE, e.getMessage(), e);
          }
      }