public void updateMusician(Musician m) {
    try {
      PreparedStatement stmt =
          conn.prepareStatement(
              "update musicians m set first_name = ?,"
                  + "last_name = ?, birthdate = ?, habitation_id = ?, password = ?",
              ResultSet.TYPE_FORWARD_ONLY,
              ResultSet.CONCUR_READ_ONLY);
      stmt.setString(1, m.getFirstName());
      stmt.setString(2, m.getLastName());
      stmt.setTimestamp(3, new java.sql.Timestamp(m.getBirthdate().getTime()));
      stmt.setInt(4, m.getHabitation().getId());
      stmt.setString(5, m.getPassword());
      stmt.executeUpdate();

      // set instrument_skills
      stmt =
          conn.prepareStatement(
              "delete from instrument_skills where musician_id = ?",
              ResultSet.TYPE_FORWARD_ONLY,
              ResultSet.CONCUR_READ_ONLY);
      stmt.setInt(1, m.getId());
      stmt.executeUpdate();

      for (Instrument i : m.getSkills()) {
        stmt =
            conn.prepareStatement(
                "insert into instrument_skills values(?, ?)",
                ResultSet.TYPE_FORWARD_ONLY,
                ResultSet.CONCUR_READ_ONLY);
        stmt.setInt(1, m.getId());
        stmt.setInt(2, i.getId());
        stmt.executeUpdate();
      }

    } catch (SQLException e) {
      e.printStackTrace();
    }
  }