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.