il problema dovrebbe risiedere nel fatto che la query dovrebbe risultare cosi:

INSERT INTO categorie (nome, descr) VALUES 'asd','asd';
e non
INSERT INTO 'categorie' ('nome, descr') VALUES ''asd', 'asd'';

al momento non mi viene soluzione con il prepared statement...
cmq dovrei averti dato una idea!!!

per il replaceAll dai una lettura qui , vedi se ti può aiutare...

comunque è normale che con l'apostrofo non ti cambi nulla!!!
tu scrivi
codice:
 stringa = replace(stringa,"'","'");
con cosa dovresti modificare l'apostrofo?