Of course, however, the next question is, why did he lie about it afterwards. That would seem to imply that even though he thought it was necessary, it still violated parameters of his ethical subroutines. And the fact that he could lie about it afterwards would really only compound the unethical behavior, wouldn't it.
It would, which implies to me that he did it simply to avoid a charge of attempted murder. Data already has experience of the somewhat arbitrary nature of Starfleet military law, doesn't he? If he'd had an advocate less capable than Picard, he might be gathering dust on a shelf somewhere as the victim of a failed experiment.
If we assume that he in fact believes he behaved correctly, given that his dilemma has been obviated by his rescue, he might simply wish to avoid what he sees as the unnecessary risk of being convicted of a crime he knows was justified in the circumstances.
Fajo was probably right that that sort of killing violated certain parameters in Data's subroutines, but just wrong that Data would lack the means to be able to overcome the limitations in such circumstances.
I tend to think Fajo was simply mistaken about the nature of Data's subroutines. He assumed that 'do not kill' was an immutable absolute. But Data had already assisted in the marooning in space of his brother Lore. That might not be 'murder' but it could certainly have plausibly caused Lore's death, so it is at the least cruel and unusual punishment and at the worst wilful endangerment of life (they don't even try to locate Lore later and beam him into the brig or whatever, they just leave him to drift and be found by Pakleds).