Skills use "уметь" (to know how to).
"Я могу писать" means that you physically can/may. Or not. And it is not very idiomatic to say that when meaning that you can write in general. If you mean it being possible to write some specific thing, using «писать» is not recommended because it is has the wrong aspect for that.
To sum it up:
мочь is mostly used for actions you can perform (and is very good with perfective verbs for that). Works for physical ability or inability to do something, too ("Even recovered, he still cannot walk").
уметь is what is typically used with skills to perform some actions
English does not really differentiate between possibility, physical ability and skill. The verb "can" is usually enough. We can use "is able to" and "knows how to" in our translations—but both are not as common as "can".
Besides, "knows how to" may cause a learner to write "знает, как" which does not mean what you think it means.
The spoken version (for example, at the top of this page) clearly enunciates the word with the stress on the 2nd syllable, "писа́ть" which makes it "write".
Your alternative needs to have the stress on the first syllable "пи́сать".
Take a look at https://en.wiktionary.org/wiki/%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C if you'd like confirmation.
«Уметь» is about an ability or skill. It means "can, know how to". We often use "to know how to do something" in our translations but in English you may also use "can" just as easily.
«Знать» is about possessing knowledge ("to know"). You can use it with languages, which is not as common in English (in English "speaking" languages is a more popular way of saying this).
Well, Google translate suggests that you are right: https://translate.google.com/?sl=en&tl=es&text=I%20know%20Spanish.%20I%20know%20him.&op=translate
I believe that the former is perfective (to write something to completion), and latter in imperfective (to be in the process of writing something right now).