You have created an AFTER Trigger which fire when the changes has been made to the database. you need to create an Instead of trigger so you can roll back any invalid operations before it is committed to the disk.
Something like this......
CREATE TRIGGER duplikat_miejsce ON miejsce
INSTEAD OF INSERT
AS
BEGIN
IF EXISTS (select * from miejsce i
inner join inserted t
on i.ulica = t.ulica
and i.numer = t.numer
and i.miasto = t.miasto
and i.kod = t.kod)
BEGIN
RAISERROR ('Adres juz istnieje',16,1)
END
ELSE
BEGIN
INSERT INTO miejsce (id_miejsce, ulica, numer, miasto, kod, telefon, uwagi)
SELECT t.id_miejsce, t.ulica, t.numer, t.miasto, t.kod, t.telefon, t.uwagi
FROM inserted t
WHERE NOT EXISTS (select 1
from miejsce i
WHERE i.ulica = t.ulica
and i.numer = t.numer
and i.miasto = t.miasto
and i.kod = t.kod)
END
END
If you want to raise error , error severity level must be above 10 because any error under severity level 11 are considered as warring messages not error.