PostgreSQL takes 99,9% I/O? Please, look at this screenshot of iotop tool output (Linux). There is long-running batch update process on table with 20+ million rows. Does it mean that postgres is limited by I/O disk performance?
To answer your question, we'd have to know your hardware and how to interpret what iotop is reporting.  Not exactly on topic in this forum.  Taking a giant guess, assuming you're using something like ordinary SATA hardware, the answer would be No.  A single SATA drive is capable of something like 100 MB/s; you're seeing (on the first line) about 5% of that.  Before I'd credit the disk, I'd have to explain the other 95%.  

In approaching Database performance problems, it's always a good idea to start with the DBMS itself, especially physical table design.  Work from the top down: DDL, DML, triggers, indexes, partitioning.  Once you're sure you have the DBMS's house in order, you can look at what the DBMS demands from the OS.  You can look at the depth of the I/O queues, I/O operation/second and how memory is being used.  More RAM is hardly ever harmful; a DBMS can use RAM to avoid I/O.  

The reason to work this way is technical, not political.  Errors (or suboptimal choices) at the high levels can drive orders of magnitude in performance.  One index can mean the difference between O(n^2) and O(log n) performance, a matter hours versus seconds.  The further down you go, the harder it is to measure performance, and the more expensive to rectify.  Not to mention that any new machine capacity can quickly be absorbed by new bad SQL.