Yes, you can do that. You should explicitly commit.
Your code can be improved. First, the condition " IF(c2_index.date_created < sysdate -180)" should be part of the cursor definition. Second, there is no need to close the for-loop cursor explicitly (in fact, that will fail). So:
Code:
DECLARE
CURSOR C2 IS
SELECT t1.date_created, t2.customer, t2.name1, t2.sman
FROM lead_when t1, leads t2
WHERE t1.leadno = t2.leadno
AND t1.lastsale is null
AND t1.date_created < sysdate-180
FOR UPDATE of t2.sman;
BEGIN
FOR c2_index in c2
LOOP
INSERT into sman_null_backup (sman, customer, name1) VALUES (c2_index.sman, c2_index.customer, c2_index.name1);
UPDATE leads
SET sman = NULL
WHERE CURRENT OF C2;
END LOOP;
COMMIT;
END;