Ty db.end() wywołanie ustawi połączenie w kolejce do zamknięcia po SELECT zakończyło się, więc przy próbie wykonania wewnętrznego INSERT zapytanie, połączenie z bazą danych zostanie zamknięte, stąd błąd PROTOCOL_ENQUEUE_AFTER_QUIT, gdy próbujesz kolejkować nowe polecenie po zamknięciu połączenia.
W zależności od tego, jak tworzysz połączenie, powinieneś przenieść swój db.end() wywołać wewnątrz wywołań zwrotnych lub nie mieć db.end() zadzwoń w ogóle, jeśli połączenie zostanie otwarte podczas uruchamiania programu.