SQL Trigger does not respect the where clause

I have a trigger

Create trigger [dbo].[UpdateTbl]
IN [dbo].[TableB]
After inserting

AS
START

            DECLARE @role varchar (20)
select @role = u.[role] of inserted I join u users in u.id = i.creator_id

yes @role = & # 39; client & # 39;
update table A
set updated_date = i.created_date from i inserted where TableA.id = i.trans_id

yes @role = & # 39; tech & # 39;
update ticket
set updated_date = i.created_date from i inserted where TableA.id = i.trans_id and i.[public] = & # 39; true & # 39;

FINISH
TO GO

But it does not work as expected. The update date is still updated with the value of i.created_date even if i.[public]= & # 39; fake & # 39; Any ideas?