Suppose I have uploaded metadata + images to IPFS through pinata. Next, I deploy an ERC-721 contract and paste a token URL. The main question is: can I change, delete or add metadata
Yes, but not directly from the IPFS. Anything uploaded to IPFS cannot be altered further.
However, if you want to change metadata of your NFTs you can upload updated version of your files(JSON metadata and corresponding IPFS URIs for asset images) to IPFS. Then you should update the IPFS path on your contract. But keep in mind that the default ERC721 implementation has no function to update IPFS path, you should add one.
You need to elaborate more. How are you storing the URI in the contract? Do you want to change the URI of the directory that contains the metadata of all NFTs or just one specific NFT?
Can the data be changed on ipfs? No it can not be changed. Once you uploaded the file, you will not be able to change it.
Can you change the metadata in some other way? Yes you can do it. So inside your ERC721 smart contract. You can add a function to change the URI. Then when you want to change the metadata, you can upload a new metadata file to ipfs and change the URI in smart contract.