Locks by themselves do not cause performance degradation. It is lock contention, that is, a competition between different applications for locked rows, that may cause poor performance. From your description it does not follow at all that locks are the culprit.
Now to answer your question, "how I could stop the high amount of locks": you need to choose the least strict isolation level that is still appropriate for your business logic and/or reduce the transaction size by limiting the number of rows in a single transaction. Another way to reduce the number of locks is to lock entire tables instead of individual locks, as @AngocA suggested, however, this usually increases contention thus hurting performance even more.