Consider the analogy with the position of a point: the user only wants the point to move when they issue a command to move the point. It would be extremely unpleasant if random operations, such as blocking fonts, moved the point. Therefore, it is recommended to wrap functional bodies in (save-excursion ...).
If your function explicitly sets a sign for the user, that’s fine. (In this case, I suggest calling your function something like sql-mark-column-value, so that it’s clear that setting a label is one of the things that it does.) The citation point that you are quoting is that the commands should not be checked as a result, do something else.
, SQL-, , , . , SQL; , , ! , , sql-goto-column-value , exchange-point-and-mark.
, , .