Besides Antares686 constraint which will guarantee data quality, you could write your procedure as
insert into Table_Name VALUES (@id,@value1)
Where Table_ID <> @ID
IF @@ROWCOUNT = 0
Return = - 1 --insert Failed
ELSE
Return = 0 --Success
That way you are using the procedure for BOTH checks and inserts!!
HTH
* Noel