It does not at all indicate he knows the guilty party. We know the crime was committed by either an honestant or a swindlecant, but we can't tell which. All his statement tells us is that he knows which one it was. He doesn't know the identity of said criminal, just whether or not they lie or tell the truth. There could be millions of honestants/swindlecants that could've performed the crime.
You're breaking the sentence down incorrectly. In fact, you don't need to break it down at all. The statement "I am not a poor honestant" can only be said by a swindlecat if he IS a poor honestant, which is obviously impossible. Here's the equation you're looking for:
Does "Poor swindlecat" = "poor honestant"
No, of course it doesn't. So if a poor swindlecant says he is not a poor honestant, he is telling the truth, because the two are not equal. Swindlecants can't do this, so the sentence cannot be said by a swindlecant.