Raga ho provato a modificare in questo modo:

codice:
package beans;

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.sql.ResultSet;
import java.util.ArrayList;

public class GuestDataBean
{
	private Connection connection;
	private Statement statement;
	private ResultSet resultSet;
	
	public GuestDataBean() throws Exception
	{
		Class.forName ("com.mysql.jdbc.Driver");
		
		connection = DriverManager.getConnection ("jdbc:mysql://localhost/guestbook", "root", "");
		statement = connection.createStatement();		
	}
	
	public ArrayList < GuestBean > getGuestList() throws SQLException
	{
		resultSet = statement.executeQuery ("SELECT firstName, lastName, email FROM guests");
		
		ArrayList < GuestBean > guestList = new ArrayList < GuestBean >();
		
		resultSet.beforeFirst();
		
		while (resultSet.next())
		{
			GuestBean guest = new GuestBean();
			
			guest.setFirstName (resultSet.getString (1));
			guest.setLastName (resultSet.getString (2));
			guest.setEmail (resultSet.getString (3));
			
			guestList.add (guest);
		}
		
		try
		{
			statement.close();
			connection.close();
		}
		catch (Exception exception) {}
		
		return guestList;
	}
	
	public void addGuest (GuestBean guest) throws SQLException
	{
		String firstName = guest.getFirstName();
		String lastName = guest.getLastName();
		String email = guest.getEmail();
		
		statement.executeUpdate ("INSERT INTO guests (firstName, lastName, email) VALUES ('" + firstName + "', '" + lastName + "', '" + email + "')");
		
		try
		{
			statement.close();
			connection.close();
		}
		catch (Exception exception) {}
	}
}
Ho spostato la SELECT dal costruttore al metodo getGuestList, così viene richiamata solo se necessaria. E stavolta, dopo aver inserito un messaggio (che comunque riesce ad inserirsi nel database), viene lanciata una nuova SQLException: "No operations allowed after statement closed." Come se il resultSet di prima e lo statement, avessero solo visibilità costruttore, ma io le ho dichiarate fuori dal costruttore... come è possibile? o_O