Appending data to a file requires write permission on the file itself. Removing a file requires write permission on the directory containing a file.
For example, I have a directory called testdir, for which I have removed write permissions:
[haxiel@testvm1 ~]$ ls -ld testdir/
dr-xr-xr-x. 2 haxiel haxiel 26 Nov 23 10:09 testdir/
Inside the directory, I had created a file called testfile.txt (this was done before removing the write permission on the directory).
[haxiel@testvm1 testdir]$ ls -l testfile.txt
-rw-rw-r--. 1 haxiel haxiel 12 Nov 23 10:11 testfile.txt
Now, I am able to append data to the file, since I have write permission on it:
[haxiel@testvm1 testdir]$ echo "Line1" >> testfile.txt
[haxiel@testvm1 testdir]$ echo "Line2" >> testfile.txt
[haxiel@testvm1 testdir]$ cat testfile.txt
Line1
Line2
But I cannot remove the file since I do not have write permissions on its parent directory.
[haxiel@testvm1 testdir]$ rm testfile.txt
rm: cannot remove ‘testfile.txt’: Permission denied
You can look at this question for more details on directory permissions: Execute vs Read bit. How do directory permissions in Linux work?