Calling var_inc_violations/2 on a nonvariable has no effect and silently succeeds.
?- tent_set(X, 27), var_inc_violations(X, 3).
X = X{27 -> 3}
Yes (0.00s cpu)
?- tent_set(X, 27), var_inc_violations(X, 3), var_inc_violations(X, 1).
X = X{27 -> 4}
Yes (0.00s cpu)
?- tent_set(X, 27), var_inc_violations(X, 3), var_inc_violations(X, -1).
X = X{27 -> 2}
Yes (0.00s cpu)
?- var_inc_violations(foo, 3).
Yes (0.00s cpu)
?- var_inc_violations(_, 3).
No (0.00s cpu)