Also der Code ist allgemein ziemlich schlecht, aber das lassen wir jetzt mal so stehen.
Grundsätzlich solltest du, um Konsistenz zu garantieren, schon der Datenbank
mitteilen, dass keine UUID mehrfach in der Tabelle stehen darf. Dann wirft dein Plugin an der Stelle eine Exception, wodurch dein Problem nicht gelöst ist, aber du zumindest keine dauerhaft fehlerhaften Datensätze in der Datenbank hast.
Dann gibt es grundsätzlich die Möglichkeit, der Datenbank mitzuteilen,
dass ein Datensatz nur angelegt werden soll, wenn er nicht bereits existiert. Jede Methode hat ihre Nachteile, die dabei berücksichtigt werden sollten.
Um dein eigentliches Problem zu lösen, bräuchte man vermutlich den gesamten Quelltext, denn du schreibst: "Allerdings wird manchmal beim joinen der Rang des Spielers nicht richtig abgefragt und der Spieler wird ein weiteres mal eingetragen.". Wie soll ich das verstehen? Ist damit jetzt die setupSpieler()-Methode gemeint? Wie wäre es für den Anfang damit, dass du Exceptions nicht ins Leere laufen, sondern ausgeben lässt, damit du überhaupt mitbekommst, wenn es zu Fehlern gekommen ist?
Sprechen wir außerdem von einer Serverinstanz oder von einem Netzwerk?